Test automation software seeks to ensure that an application under test performs correctly. A defect or functional change introduced into the system may cause a test to fail. A system failure because of a functional change would result from the test software being outdated. Upon knowledge a change has occurred in the application under test, all tests may be run to try to avoid problems in the system from the change to the application.